package com.ruoyi.SSL.service;

import java.util.List;

import cn.hutool.json.JSONObject;
import com.ruoyi.SSL.domain.SslApply;
import com.ruoyi.SSL.domain.SslDomain;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;

/**
 * 证书申请Service接口
 *
 * @author ruoyi
 * @date 2024-09-07
 */
public interface ISslApplyService
{
    /**
     * 查询证书申请
     *
     * @param id 证书申请主键
     * @return 证书申请
     */
    public SslApply selectSslApplyById(Long id);

    /**
     * 查询证书申请列表
     *
     * @param sslApply 证书申请
     * @return 证书申请集合
     */
    public List<SslApply> selectSslApplyList(SslApply sslApply);

    /**
     * 新增证书申请
     *
     * @param applyObjJson 证书申请
     * @return 结果
     */
    public AjaxResult insertSslApply(JSONObject applyObjJson);

    /**
     * 修改证书申请
     *
     * @param sslApply 证书申请
     * @return 结果
     */
    public int updateSslApply(SslApply sslApply);

    /**
     * 批量删除证书申请
     *
     * @param ids 需要删除的证书申请主键集合
     * @return 结果
     */
    public int deleteSslApplyByIds(String ids);

    /**
     * 删除证书申请信息
     *
     * @param id 证书申请主键
     * @return 结果
     */
    public int deleteSslApplyById(Long id);


    AjaxResult getAuthorizationsInfo(SslApply sslApply);

    AjaxResult authStatus(SslApply sslApply, int idx);

    AjaxResult selectAuthStatus(SslDomain sslDomain, int idx);

    AjaxResult downCertificate(SslApply sslApply);


    AjaxResult getSSLInfo(SslApply sslApply);

    AjaxResult synsDomain(SslDomain sslDomain);

    AjaxResult getDomainRrVal(String domainTxt, String rrVal);

    AjaxResult getSendEmailInfo();

    AjaxResult isHaveSpecialDomain(String domainTxt);

    AjaxResult getNewVersion();



}
